package com.hxzy.module.admin.service;

import com.github.pagehelper.PageInfo;
import com.hxzy.module.admin.api.role.req.*;
import com.hxzy.module.admin.api.role.resp.AdminRoleResp;
import com.hxzy.module.admin.api.role.resp.RoleAuthorityTreeResp;
import com.hxzy.module.admin.entity.AdminRole;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author 11452
* @description 针对表【admin_role(总部角色表)】的数据库操作Service
* @createDate 2024-01-28 10:57:28
*/
public interface AdminRoleService extends IService<AdminRole> {

    /**
     * 角色列表
     * @param req
     * @return
     */
    PageInfo<AdminRoleResp> roleList(AdminRoleReq req);

    /**
     * 角色权限树
     * @param roleId
     * @return
     */
    List<RoleAuthorityTreeResp> roleAuthorityTree(Long roleId);

    /**
     * 新增角色
     * @param req
     * @return
     */
    boolean add(AdminRoleAddReq req);

    /**
     * 编辑角色
     * @param req
     * @return
     */
    boolean editRole(AdminRoleEditReq req);

    /**
     * 修改角色权限
     * @param req
     * @return
     */
    Boolean changeRoleAuthority(ChangeRoleAuthorityReq req);

    /**
     * 修改角色状态
     * @param req
     * @return
     */
    boolean changeRoleState(ChangeRoleStateReq req);

    /**
     * 删除角色信息
     * @param roleId
     * @return
     */
    boolean delRole(Long roleId);
}
